package userInterface.Panels.CommandArgumentPanels;

import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;

/**
 * {@link javax.swing.JPanel JPanel} for editing {@link settings.Command Command} arguments.
 * @author BDS
 */
public abstract class PanelCommandArguments extends JPanel
{
	private static final long serialVersionUID = 1L;
	
	/**
	 * Class constructor.
	 */
	public PanelCommandArguments() { }

    /**
     * Provides the external event processing class references to the contained {@link javax.swing.JComponent JComponents}.
     * @param actionListener The {@link java.awt.event.ActionListener ActionListener} for {@link javax.swing.JComboBox JComboBoxes}.
     * @param focusAdapter The {@link java.awt.event.FocusAdapter FocusAdapter} for {@link javax.swing.JFormattedTextField JFormattedTextFields}.
     * @param keyAdapter The {@link java.awt.event.KeyAdapater KeyAdapater} for {@link javax.swing.JFormattedTextField JFormattedTextFields}.
     * @param changeListener The {@link javax.swing.event.ChangeListener ChangeListener} for {@link javax.swing.JSpinner JSpinners}.
     */
	public void addActionListeners(ActionListener actionListener, FocusAdapter focusAdapter, KeyAdapter keyAdapter, ChangeListener changeListener) { }

    /**
     * Resets focus to the {@link javax.swing.JPanel JPanel}.
     */
    public void resetFocus()
    {
        requestFocus();
    }
	
	/**
	 * Gets the {@link settings.Command Command} arguments currently displayed.
	 * @return The {@link settings.Command Command} arguments currently displayed.
	 */
	public List<String> getArguments() { return new ArrayList<String>(); }
	
	/**
	 * Sets the {@link settings.Command Command} arguments and updates the UI.
	 * @param arguments The {@link settings.Command Command} arguments used to update the UI.
	 */
	public void setArguments(List<String> arguments) { }
}
